package cn.newgrand.netcall.personal.contact;

import cn.newgrand.netcall.personal.contact.entity.PersonalContact;
import cn.newgrand.netcall.personal.contact.service.PersonalContactHandler;

/**
 * @author SidneyRen E-mail:SidneyRen@hotmail.com
 * @version create time：2010-10-11 下午06:09:16 类说明
 */
public class PersonalContactManager {
	private static PersonalContact cachedPC = new PersonalContact();
	private static PersonalContactManager instance;
	private static final Object LOCK = new Object();
	
	/**
	 * 
	 * @return
	 */
	public static PersonalContactManager getInstance() {
		synchronized (LOCK) {
			if (null == instance) {
				instance = new PersonalContactManager();
				return instance;
			} else {
				return instance;
			}
		}
	}
	
	private PersonalContactManager() {
		init();
	}
	/**
	 * 初始化个人联系人的功能
	 * 包括初始化个人联系人的 常用联系人、自定义组、常用部门、常用会议、最近联系人
	 */
	public void init(){
		//TODO
		initCachedPC();
		
	}
	
	/**
	 * 初始化  PersonalContact到内存
	 */
	public void initCachedPC(){
		cachedPC.init();
	}
	
	/**
	 * 返回加载个人配置信息后的PersonalContact对象
	 *  
	 * @return
	 */
	public PersonalContact getCachedPersonalContact(){
		return cachedPC;
	}
	
	/**
	 * 创建一个新的personalContact对象
	 * @return
	 */
	public PersonalContact createPersonalContact(){
		return new PersonalContact();
	}
	
	/**
	 * 返回PersonalContact的处理类
	 * @return
	 */
	public PersonalContactHandler getPersonalContactHandler(){
		return new PersonalContactHandler();
	}
}
